#include<iostream>

using namespace std;

const int N = 1e6 + 10;
int q[N];

void quick_sort(int q[], int l, int r)
{
    if(l == r)return ;
    int x = q[l + r >> 1], i = l - 1, j = r + 1;
    
    while(i < j)
    {
        do i ++; while(q[i] < x);
        do j --; while(q[j] > x);
        if(i < j) swap(q[i], q[j]);
    }
    quick_sort(q, l, j);
    quick_sort(q, j + 1, r);
}
int  main()
{
     int n;
     cin >> n;
     for(int i = 0; i < n; i ++ )scanf("%d",&q[i]);
     quick_sort(q, 0, n - 1);
     for(int i = 0; i < n ; i ++) printf("%d ",q[i]);
    
    return 0;
}
////test 1
//string s, t;
//int main()
//{
//
//	long long l;
//	cin >> s >> l;
//	int t = s.size();
//	
//	while(t < l)
//	{
//		long long i = t; 
//		while(l > i) i *= 2;
//		i /= 2;
//		l -= (i + 1);
//		if(l == 0) l = i + 1;
//	} 
//
//	cout << s[l - 1] << endl;
//
//	return 0; 
//}
